package com.blueocean_health.care.management.service;

import com.alibaba.fastjson.JSONObject;
import com.blueocean_health.care.management.domain.base.NurseCheckWork;
import com.blueocean_health.care.management.domain.base.NurseGroup;
import com.blueocean_health.care.management.domain.base.SysResult;
import com.blueocean_health.care.management.domain.checkWorkVo.*;
import com.blueocean_health.care.management.domain.dto.SelectNurseDto;
import com.blueocean_health.care.management.exception.OrderException;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @Author ChenPeng cp
 * @Date 2018/4/26 14:37
 */

public interface CheckWorkService {

    SysResult queryNurseGroupListByHid(String hid);

    SysResult queryNurseByHid(SelectNurseDto selectNurseDto);

    SysResult queryCheckWorkList(CheckWorkListDto checkWorkListDto,String flag);//flag: null： 列表查询   非空：点编辑后的列表

    List<CheckWorkListVo> queryCheckWorkListExcel(CheckWorkListDto checkWorkListDto);

    SysResult updateCheckWorkByGroup(UpdateCheckWorkVo updateCheckWorkVo) throws OrderException;

    SysResult queryMonthCheckByWorker(SelectMonthDto selectMonthDto);

    Map<String, Long> queryAllByStartAndEndTime(String startTime, String endTime);

    Map<Integer, Long> queryAllByGroupId(String startTime, String endTime);

    Long queryByGroupId(Integer groupId,String startTime, String endTime);

    Long queryByWorkId(String workId,String startTime, String endTime);

    List<SelectGroupVo> queryAllByStartAndEndTimeAndGroupId(String startTime, String endTime);
    
    Integer queryByWorkIdAndGroupId(String workId,String groupId,String startTime, String endTime);

    void  updateCheckWorkBatch(JSONObject data) throws OrderException;

    SysResult queryWorkerListForCheckWork(String workId,String hid);


    SysResult queryCheckWorkListNew(CheckWorkListNewDto checkWorkListNewDto);
    List<CheckWorkListNewVo> queryCheckWorkListExcelNew(CheckWorkListNewDto checkWorkListNewDto);
    SysResult updateCheckWorkNew(UpdateCheckWorkNewVo updateCheckWorkNewVo)throws OrderException;


}
